package org.example.sort;

import org.example.utils.ArrayUtils;

/**
 * 类描述：冒泡排序
 * <br>
 *
 * @author ZS
 * @version 1.0
 * @date 2020/12/28
 **/
public class BubbleSort {
    public static int[] sort(int[] arr) {
        int len = arr.length;
        // 一次扫描，记录其中最大值的索引
        int maxIndex = 0;

        for (int end = len - 1; end > 0; end--) {
            maxIndex = 0;

            // 获取
            for (int i = 1; i < end; i++) {
                if (arr[i] > arr[maxIndex]) {
                    maxIndex = i;
                }
            }

            // 进行交换
            if (arr[maxIndex] > arr[end]) {
                ArrayUtils.swap(arr, maxIndex, end);
            }
        }
        return arr;
    }
}
